#ifndef NODE_FPS_HH_
# define NODE_FPS_HH_

# include <math/vector.hh>

# include "../physic/object.hh"
# include "functor.hh"
# include <list>
# include <algorithm>
# include <tools/list.hh>

class NodeFps
{
public:
  NodeFps (unsigned int step);
  ~NodeFps ();

  void add_obj (Object* obj, Vector3d& pos);
  bool delete_obj (Object* obj, Vector3d& pos);

  void accept (PhysicFunctor* phy, Vector3d& pos);
  void accept (DisplayFunctor* disp);

  void accept_all (PhysicFunctor* phy);

  std::list<Object*>& obj_get () { return obj_; }

protected:
  unsigned int size_;
  NodeFps** son_;

  std::list<Object*> obj_;
};

#endif /// !NODE_FPS_HH_
